﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DHISInteroperability.Resources
{

    
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://dhis2.org/schema/dxf/2.0")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "http://dhis2.org/schema/dxf/2.0", IsNullable = false)]
    public partial class dataElement
    {

        private bool zeroIsSignificantField;

        private string typeField;

        private bool externalAccessField;

        private string aggregationOperatorField;

        private object urlField;

        private string numberTypeField;

        private string domainTypeField;

        private string dimensionField;

        private string displayNameField;

        private access accessField;

        private categoryCombo categoryComboField;

        private object aggregationLevelsField;

        private dataElementGroup[] dataElementGroupsField;

        private dataSet[] dataSetsField;

        private object attributeValuesField;

        private object itemsField;

        private object userGroupAccessesField;

        private string idField;

        private string createdField;

        private string nameField;

        private string hrefField;

        private string lastUpdatedField;

        private string shortNameField;

        
        public bool zeroIsSignificant
        {
            get
            {
                return this.zeroIsSignificantField;
            }
            set
            {
                this.zeroIsSignificantField = value;
            }
        }

        
        public string type
        {
            get
            {
                return this.typeField;
            }
            set
            {
                this.typeField = value;
            }
        }

        
        public bool externalAccess
        {
            get
            {
                return this.externalAccessField;
            }
            set
            {
                this.externalAccessField = value;
            }
        }

        
        public string aggregationOperator
        {
            get
            {
                return this.aggregationOperatorField;
            }
            set
            {
                this.aggregationOperatorField = value;
            }
        }

        
        public object url
        {
            get
            {
                return this.urlField;
            }
            set
            {
                this.urlField = value;
            }
        }

        
        public string numberType
        {
            get
            {
                return this.numberTypeField;
            }
            set
            {
                this.numberTypeField = value;
            }
        }

        
        public string domainType
        {
            get
            {
                return this.domainTypeField;
            }
            set
            {
                this.domainTypeField = value;
            }
        }

        
        public string dimension
        {
            get
            {
                return this.dimensionField;
            }
            set
            {
                this.dimensionField = value;
            }
        }

        
        public string displayName
        {
            get
            {
                return this.displayNameField;
            }
            set
            {
                this.displayNameField = value;
            }
        }

        
        public access access
        {
            get
            {
                return this.accessField;
            }
            set
            {
                this.accessField = value;
            }
        }

        
        public categoryCombo categoryCombo
        {
            get
            {
                return this.categoryComboField;
            }
            set
            {
                this.categoryComboField = value;
            }
        }

        
        public object aggregationLevels
        {
            get
            {
                return this.aggregationLevelsField;
            }
            set
            {
                this.aggregationLevelsField = value;
            }
        }

        
        [System.Xml.Serialization.XmlArrayItemAttribute("dataElementGroup", IsNullable = false)]
        public dataElementGroup[] dataElementGroups
        {
            get
            {
                return this.dataElementGroupsField;
            }
            set
            {
                this.dataElementGroupsField = value;
            }
        }

        
        public dataSet[] dataSets
        {
            get
            {
                return this.dataSetsField;
            }
            set
            {
                this.dataSetsField = value;
            }
        }

        
        public object attributeValues
        {
            get
            {
                return this.attributeValuesField;
            }
            set
            {
                this.attributeValuesField = value;
            }
        }

        
        public object items
        {
            get
            {
                return this.itemsField;
            }
            set
            {
                this.itemsField = value;
            }
        }

        
        public object userGroupAccesses
        {
            get
            {
                return this.userGroupAccessesField;
            }
            set
            {
                this.userGroupAccessesField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string id
        {
            get
            {
                return this.idField;
            }
            set
            {
                this.idField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string created
        {
            get
            {
                return this.createdField;
            }
            set
            {
                this.createdField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string href
        {
            get
            {
                return this.hrefField;
            }
            set
            {
                this.hrefField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lastUpdated
        {
            get
            {
                return this.lastUpdatedField;
            }
            set
            {
                this.lastUpdatedField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string shortName
        {
            get
            {
                return this.shortNameField;
            }
            set
            {
                this.shortNameField = value;
            }
        }
    }
}
